Today's large computer networks typically provide a network user, particularly a mobile network user, with the opportunity to attach to the network at multiple points. The network user may be motivated to change network attachment points because different network attachment points may, for example, offer different qualities of service, at different costs, and/or be maintained by different organizations. A computer may even be configured to automatically change network attachment points, for example, in order to minimize cost and/or maximize quality of service.
It is typically desirable for applications that utilize computer network services, that the computer network service be as transparent as possible to the application, that is, that the application need be aware of as few computer network service implementation details as possible, particularly with regard to lower layer network protocol changes. For computer networks that don't incorporate suitable facilities in to their base protocol, making network attachment point change transparent to an application may require additional mechanisms. For example, when a computer changes its attachment point to the Internet, the new network attachment point is typically associated with a new Internet Protocol (IP) address. Under baseline Internet Protocol version 4 (IPv4) or Internet Protocol version 6 (IPv6), for example, an application on the computer that has active connections before a network attachment point change may need to make provision to rebuild those connections following the change.
For the purposes of this description, conventional attempts to make network attachment point change transparent to the application may be classified as infrastructure solutions and end-to-end solutions. Infrastructure solutions typically require additional network elements and/or network routing system modifications. For example, Mobile IP for IPv4 and Mobile IP for IPv6 are routing-based infrastructure solutions that require an additional Home Agent network element. In contrast, end-to-end solutions manage network attachment point change at communication endpoints, independent of network routing. An example end-to-end solution is described by Snoeren et al., An End-to-End Approach to Host Mobility, 6th ACM/IEEE International Conference on Mobile Computing and Networking, August 2000 (“Snoeren et al”). An advantage of end-to-end solutions is that they may enable transparent network attachment point change without modification to existing network infrastructure.
Conventional solutions have drawbacks. For example, Mobile IP for IPv4 and Mobile IP for IPv6 include routing indirection which may introduce routing inefficiencies and violate network security models. Some conventional end-to-end solutions fail to handle the case where each computer that is party to a communication connection changes its network attachment point simultaneously, or else handle the case inconsistently. The use of Network Address Translation (NAT) in a computer network is another aspect of modern computer networks that is handled inefficiently and/or inconsistently by some conventional solutions.
Some conventional solutions handle different versions of a network protocol differently, which may harm transparency. Some computer networks provide support layered protocols, for example, the Internet Protocol is commonly used in conjunction with a Transmission Control Protocol (TCP) and a User Datagram Protocol (UDP). Some conventional solutions support aspects of upper protocol layers only inefficiently or inconsistently, for example, a solution may support TCP over IP but fail to work properly with UDP over IP. Transparency may be improved if the application need not be aware that different aspects of a layered protocol are handled differently.